package generator

import (
	"flag"
	"fmt"
	"google.golang.org/protobuf/compiler/protogen"
	"os"
)

func Gen2()  {
	flag.Parse()
	protogen.Options{
		ParamFunc:         flag.CommandLine.Set,
		ImportRewriteFunc: nil,
	}.Run(handler)
}

func handler(plugin *protogen.Plugin) error {


	fmt.Fprintf(os.Stderr, "a=%s\n", *s)

	// protoc 将一组文件结构传递给程序处理,包含proto中import中的文件
	for _, file := range plugin.Files {
		if !file.Generate { //显示传入的文件为true
			continue
		}
		if len(file.Enums) != 1 { //本例子只支持一个错误枚举类型
			continue
		}
		fmt.Fprintf(os.Stderr, "path:%s\n", file.GoImportPath)
		genF := plugin.NewGeneratedFile(fmt.Sprintf("%s_error.pb.go", file.GeneratedFilenamePrefix), file.GoImportPath)
		GenFile(genF, file, *s)
	}
	return nil
}
